package com.hk.housekeeping.mapper;

import com.hk.housekeeping.entity.ItemsDetail;
import com.hk.housekeeping.entity.OrderItem;
import com.hk.housekeeping.entity.RespItemDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ItemMapper {
    //分页查询
    List<OrderItem> selectItems(@Param("currentPage") int currentPage, @Param("pageSize") int pageSize);

    //查询总条数
    int selectTotalCount();

    //假删除一条项目记录（触发器，级联假删除详情表）
    int deleteItem(@Param("id") int id);

    //按照项目名字进行查找(模糊查询)
     List<OrderItem> selectItemByName(@Param("name") String name, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
     //按名字查找时查询相应的总条数
    int selectTotalCountByName(@Param("name") String name);

    //按照项目的起始时间进行查找
    List<OrderItem> selectItemByTime(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("currentPage") int currentPage, @Param("pageSize") int pageSize);
    //按时间查找时查询相应的总条数
    int selectTotalCountByTime(@Param("startTime") String startTime, @Param("endTime") String endTime);

    //查看详情（返回项目详情表数据）
    RespItemDetail selectItemDetail(@Param("itemId") int itemId);

    //修改详情
    //1、修改项目表有效时间
    int updateItemTime(@Param("itemId") int itemId, @Param("startTime") String startTime, @Param("endTime") String endTime);
    //2、假删除详情表（通过项目详情表的id）
    int deleteItemDetail(@Param("id") int id);
    //3、向详情表重新插入新记录（项目表关联的id不变）
    int insertItemDetail(@Param("itemsDetail") ItemsDetail itemsDetail);

    //增加一个服务项目
    //1、先在项目表增加一条记录
    int insertItem(@Param("orderItem") OrderItem orderItem);
    //2、再向详情表添加一条记录（调用insertItemDetail()方法）
    //3、完善功能：按照表单的单价计算该项目的总价格
}
